package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * (TzAirdropTask)表实体类
 *
 * @author makejava
 * @since 2023-05-22 18:29:21
 */
@Data
@TableName("tz_airdrop_task")
public class AirdropTask implements Serializable {
    @TableId(type = IdType.AUTO)
    @Schema(description = "空投任务主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long airdropTaskId;

    @Schema(description = "空投店铺ID")
    private Long dropShopId;

    @Schema(description = "空投任务名称")
    private String airdropTaskName;

    @Schema(description = "空投物品类型 0：商品 1盲盒 2商品优先购资格 3盲盒优先购资格")
    private String articleType;

    @Schema(description = "空投物品ID集合")
    private String articleIds;

    @Schema(description = "空投物品名称集合")
    private String articleNames;

    @Schema(description = "空投总数")
    private Integer total;

    @Schema(description = "成功总数")
    private Integer successNum;

    @Schema(description = "失败原因")
    private String reason;

    @Schema(description = "处理状态：0：待执行 1：已执行  3已取消")
    private Integer status;

    @Schema(description = "执行时间")
    private Date executeTime;

    @Schema(description = "优先购资格过期时间")
    private Date effectiveTime;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "修改时间")
    private Date updateTime;

    @TableField(exist = false)
    @Schema(description = "空投条件集合")
    private List<AirdropTaskConditions> airdropTaskConditions;
}